package top.jacktgq.sxt.bio.tcp.demo10;

import java.io.*;
import java.net.Socket;

/**
 * @Author CandyWall
 * @Date 2019/10/21--14:30
 * @Description 模拟登录 双向：将控制台输入的账号密码发送到服务器端
 *                 客户端：
 *                  1、建立连接：使用Socket创建客户端 + 服务的地址和端口
 *                  2、操作：输入输出流
 *                  3、释放资源
 */
public class TCPLoginClient {
    public static void main(String[] args) throws IOException {
        //1、建立连接：使用Socket创建客户端 + 服务的地址和端口
        Socket client = new Socket("localhost", 8888);
        DataOutputStream dos = null;
        DataInputStream dis = null;

        while (true) {
            //2、操作：输入输出流
            dos = new DataOutputStream(client.getOutputStream());
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("请输入用户名：");
            String username = br.readLine();
            System.out.print("请输入密码：");
            String password = br.readLine();
            dos.writeUTF("username=" + username + "&password=" + password);
            dis = new DataInputStream(client.getInputStream());
            String result = dis.readUTF();
            System.out.println(result);
            if ("密码正确".equals(result)) {
                break;
            }
        }
        //4、释放资源
        dos.close();
        dis.close();
        client.close();
    }
}
